The present invention relates to error correction used with data storage devices. More particularly, the present invention relates to on-the-fly error correction for magnetic recording media such as magnetic disc drives.
Until recently, "on-the-fly" error correction has not been widely incorporated into high speed magnetic recording devices for several reasons. It is difficult to develop high code correction capacity and high error detection capacity in an on-the-fly correction system. Therefore, such systems have had reliability problems. Also, the mathematics involved in error correction in such systems has typically been extremely complex. The extreme complexity, itself, poses certain problems. Also, this complexity typically results in high latency within the error correction system. When the error detection capacity and the error correction capacity of the code are increased, the latency and complexity of the system are simultaneously increased. All of these problems compound one another.
In conventional error correction systems, each codeword to be decoded and corrected typically comprises a complete sector on a magnetic disc. Each codeword should be decoded and corrected prior to reading the next codeword. However, where correction takes a long time relative to the reading operation performed by the read head in the disc drive, the next subsequent codeword to be read and decoded could pass a disc drive's read head before the previous codeword had been decoded and corrected. Thus, in order to decode and correct the next subsequent codeword, the system was required to wait one entire disc revolution until the next subsequent codeword was again under the read head in the disc drive. Therefore, on-the-fly error correction is desirable. Two prior art references, U.S. Pat. Nos. 4,494,234 and 4,504,948, both to Patel, disclose multibyte, on-the-fly error correction systems. However, the hardware required to implement these systems is extremely complex, employing hundreds if not thousands of exclusive-OR ("XOR") gates.